From: Florian Müllner Date: Fri, 21 Oct 2016 12:09:32 +0000 (+0200) Subject: background: Update animations when coming back from suspend X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~663 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=ccacb5f6de9ae120a3946b6e55d71ad2182dc8f0;p=gnome-shell.git background: Update animations when coming back from suspend We currently reload animated backgrounds on timezone changes, but there are other cases where the time can change unexpectedly and the background no longer matches the time of day. One case we can easily handle is when coming back from suspend, so do that. https://bugzilla.gnome.org/show_bug.cgi?id=773265 --- diff --git a/js/ui/background.js b/js/ui/background.js index 762c76c6e..622a59a6c 100644 --- a/js/ui/background.js +++ b/js/ui/background.js @@ -102,6 +102,7 @@ const Lang = imports.lang; const Meta = imports.gi.Meta; const Signals = imports.signals; +const LoginManager = imports.misc.loginManager; const Main = imports.ui.main; const Params = imports.misc.params; const Tweener = imports.ui.tweener; @@ -254,6 +255,13 @@ const Background = new Lang.Class({ this._loadAnimation(this._animation.file); })); + LoginManager.getLoginManager().connect('prepare-for-sleep', + (lm, aboutToSuspend) => { + if (aboutToSuspend) + return; + this._refreshAnimation(); + }); + this._settingsChangedSignalId = this._settings.connect('changed', Lang.bind(this, function() { this.emit('changed'); })); @@ -282,10 +290,16 @@ const Background = new Lang.Class({ }, updateResolution: function() { - if (this._animation) { - this._removeAnimationTimeout(); - this._updateAnimation(); - } + if (this._animation) + this._refreshAnimation(); + }, + + _refreshAnimation: function() { + if (!this._animation) + return; + + this._removeAnimationTimeout(); + this._updateAnimation(); }, _setLoaded: function() {